package com.xf.tourismapp.activities;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.alibaba.fastjson.JSONObject;
import com.xf.tourismapp.R;
import com.xf.tourismapp.entity.User;
import com.xf.tourismapp.model.ResultResponse;
import com.xf.tourismapp.util.HttpCallbackListener;
import com.xf.tourismapp.util.HttpUtil;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText et_account;
    private EditText et_password;
    //用于接收Http请求的servlet的URL地址，请自己定义
    private String originAddress = "http://2qmaev.natappfree.cc/student_manager/user/login";
    //用于处理消息的Handler
    Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            // 获取到响应报文 （数据接口返回的JSON字符串）
            String result = (String) msg.obj;
            // 把这个 JSON字符串转换成 ResultResponse 类方便我们使用 面向对象的思想操作 响应报文
            ResultResponse<User> resultResponse = JSONObject.parseObject(result, ResultResponse.class);
            User user = new User();
            if (resultResponse.getCode() == ResultResponse.SUCCESS) {
//                // 进入到这里说明登录成功
                Intent intent = new Intent();
//                // 设置跳转页面
                intent.setClass(LoginActivity.this, MainActivity.class);
//                // 传递参数到 MainActivity
//                // 讲 JSON字符串转换成User对象实例
                 user = JSONObject.parseObject(JSONObject.toJSONString(resultResponse.getData()), User.class);
                intent.putExtra("user", user.getUsername());
//                // 执行跳转
                startActivity(intent);
            } else {
                Toast.makeText(LoginActivity.this, resultResponse.getMsg(), Toast.LENGTH_LONG).show();
            }




            Intent intent = new Intent();
            intent.setClass(LoginActivity.this, MainActivity.class);
            intent.putExtra("user", user.getUsername());
            startActivity(intent);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initView();
    }

    private void initView() {
        et_account = (EditText) findViewById(R.id.et_account);
        et_password = (EditText) findViewById(R.id.et_password);
        Button bt_login = (Button) findViewById(R.id.bt_login);
        bt_login.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.bt_login) {
            login();
        }
    }

    private void submit() {
//        if (TextUtils.isEmpty(account)) {
//            Toast.makeText(this, R.string.login_msg_account,
//                    Toast.LENGTH_SHORT).show();
//            return;
//        }
//        String password = et_password.getText().toString().trim();
//        if (TextUtils.isEmpty(password)) {
//            Toast.makeText(this, R.string.login_msg_passwd,
//                    Toast.LENGTH_SHORT).show();
//            return;
//        }
        login();
    }

    public void login() {
//        Message message = new Message();
//        mHandler.sendMessage(message);


        // 实例化一个MAP
        HashMap<String, String> args = new HashMap<>();
        args.put("email", et_account.getText().toString());
        args.put("password", et_password.getText().toString());
        // 发送一条HTTPREQUES请求
        try {
            // 获取一个完整（包含传递的数据）的URL地址
            String url = HttpUtil.getURLWithParams(originAddress, args);
            HttpUtil.sendHttpRequest(url, new HttpCallbackListener() {
                @Override
                public void onFinish(String response) {
                    Message message = new Message();
                    // 下面这句就是 把  服务器的数据接口提供的 JSON数据 赋值给  消息的主体
                    message.obj = response;
                    // 把消息发送到消息队列中
                    mHandler.sendMessage(message);
                }

                @Override
                public void onError(Exception e) {
                    Toast.makeText(LoginActivity.this, e.getMessage().toString(), Toast.LENGTH_LONG).show();
                }
            });
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

    }


}